# @Time : 2020/7/27 14:31
# @Author : Fioman 
# @Phone : 13149920693
"""
膨胀操作是形态学中另外一种基本的操作.膨胀操作和腐蚀操作的作用是相反的,膨胀操作能对图像的边界进行扩张.
膨胀操作将与当前对象(前景)接触到的背景点合并到当前对象内,从而实现将图像的边界点向外扩张.
如果图像内两个对象的距离较近,那么在膨胀的过程中,两个对象可能会连通在一起.
膨胀操作对填补图像分割后图像内存在的空白相当有帮助.

同腐蚀操作一样,在膨胀的过程中,也是使用一个结构元来逐个像素地扫描要被膨胀的图像,并根据结构元和待膨胀图像的关系来确定
膨胀结果.
如果结构元中任意一点处于前景图像中,就将膨胀结果图像中对应像素点处理为前景色.
如果结构元完全处于背景图像内,前景图像外,就将膨胀结果图像中对应像素点处理为背景色.
cv.dilate(src,kernel)
"""
import cv2 as cv
import numpy as np

img = np.zeros((5, 5), dtype=np.uint8)
img[2:3, 1:4] = 1
kernel = np.ones((3, 1), np.uint8)
dilation = cv.dilate(img, kernel)

print("img = \n", img)
print("kernel = \n", kernel)
print("dilation = \n", dilation)

img = cv.imread("dilate.jpg",cv.IMREAD_GRAYSCALE)
kernel = np.ones((5,5),np.uint8)
dilation = cv.dilate(img,kernel,iterations=1)
cv.imshow("Original",img)
cv.imshow("dilation",dilation)
cv.waitKey(0)
cv.destroyAllWindows()
